#include<iostream>
#include<vector>
#include<algorithm>
#define mod  998244353
#define ll long long
using namespace std;

//利用二进制求快速幂
ll fastPow(ll base,ll exp)
{
    ll res=1;
    while(exp>0)
    {
        if(exp%2==1)
        {
            res=res*base%mod;
        }
        base=(base*base)%mod;
        exp/=2;
    }
    return res;
}

ll fact[100006];
ll inv_fact[100006];

// 预处理阶乘和阶乘的逆元
void solve_fact()
{
    fact[0]=1;
    for(int i=1;i<=100005;i++)
    {
        fact[i]=fact[i-1]*i%mod;
    }

    // 费马小定理，若 p 是质数，a 是整数且 a 与 p 互质，则 a^(p - 2) 是 a 在模 p 意义下的逆元
    inv_fact[100005]=fastPow(fact[100005],mod-2);
    for(int i=100004;i>=0;i--)
    {
        inv_fact[i]=inv_fact[i+1]%mod*(i+1)%mod;
    }
}

ll comb(ll a,ll b)
{
    return fact[b]*inv_fact[a]%mod*inv_fact[b-a]%mod;
}

ll solve(ll n,ll m)
{
    ll ans=0;
    ll max_k=n/4;
    for(ll k=m;k<=max_k;k++)
    {
        ll sign=((k-m)%2==0)?1:-1;
        ll len_2023=k*4;
        ll rem=n-len_2023;
        ll c = comb(k, rem + k) * comb(m, k) % mod;
        ll pow=fastPow(10,rem);
        ans=(ans+(pow*c*sign)%mod+mod)%mod;
    }
    return ans;
}

int main()
{
    solve_fact();
    ll n,m;
    cin>>n>>m;
    ll res=solve(n,m);
    cout<<res;
    return 0;
}
